#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
PyTorch CUDA版本安装指南
帮助用户安装支持GPU的PyTorch版本
"""

print("🎯 PyTorch CUDA版本安装指南")
print("=" * 80)

print("📋 问题诊断:")
print("  当前PyTorch版本: 2.8.0+cpu")
print("  CUDA支持: ❌ 不可用")
print("  原因: 安装了仅支持CPU的PyTorch版本")

print("\n🔧 解决方案:")
print("  需要卸载当前版本并安装支持CUDA的PyTorch版本")

print("\n🚀 安装步骤:")

print("\n1️⃣ 首先卸载当前的PyTorch版本:")
print("   pip uninstall torch torchvision torchaudio")

print("\n2️⃣ 根据您的CUDA版本安装对应的PyTorch:")

print("\n   🎯 CUDA 11.8版本:")
print("   pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118")

print("\n   🎯 CUDA 12.1版本:")
print("   pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121")

print("\n   🎯 CUDA 12.4版本:")
print("   pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124")

print("\n3️⃣ 验证安装:")
print("   python -c \"import torch; print(f'CUDA可用: {torch.cuda.is_available()}')\"")

print("\n🔍 如何确定您的CUDA版本:")

print("\n   方法1: 使用nvidia-smi命令")
print("   nvidia-smi")

print("\n   方法2: 检查NVIDIA驱动版本")
print("   在Windows中:")
print("   1. 右键点击桌面，选择NVIDIA控制面板")
print("   2. 点击帮助 -> 系统信息")
print("   3. 查看驱动版本")

print("\n   方法3: 检查CUDA工具包版本")
print("   nvcc --version")

print("\n💡 CUDA版本与PyTorch版本对应关系:")
print("   CUDA 11.8 -> PyTorch支持 ✅")
print("   CUDA 12.1 -> PyTorch支持 ✅") 
print("   CUDA 12.4 -> PyTorch支持 ✅")
print("   其他版本 -> 请访问pytorch.org获取对应版本")

print("\n⚡ 安装建议:")
print("   1. 推荐使用CUDA 11.8或12.1，兼容性最好")
print("   2. 确保NVIDIA驱动版本支持对应的CUDA版本")
print("   3. 安装前备份当前环境")
print("   4. 如果使用conda，也可以使用conda安装:")

print("\n   🐍 Conda安装命令:")
print("   conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia")

print("\n🛡️ 注意事项:")
print("   1. 安装过程中可能需要科学上网")
print("   2. 下载文件较大(1-2GB)，请确保网络稳定")
print("   3. 安装完成后重启终端或IDE")
print("   4. 如果遇到依赖冲突，可能需要创建新的虚拟环境")

print("\n🧪 安装后验证:")
print("   创建test_cuda.py文件:")
print("""
import torch
print("PyTorch版本:", torch.__version__)
print("CUDA可用:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("CUDA版本:", torch.version.cuda)
    print("GPU数量:", torch.cuda.device_count())
    print("当前GPU:", torch.cuda.get_device_name(0))
""")

print("\n🎯 安装成功后:")
print("   1. 排列5模型训练将自动使用GPU")
print("   2. 训练速度将大幅提升")
print("   3. 可以使用更大的batch_size")
print("   4. 支持更复杂的模型结构")

print("\n" + "=" * 80)
print("💡 小贴士:")
print("  如果您不确定CUDA版本，建议先运行nvidia-smi命令查看")
print("  或者直接安装CUDA 11.8版本的PyTorch，兼容性最好")
print("  安装完成后，排列5序列LSTM模型训练会自动使用GPU!")